﻿using mozhi.smarterp.Business.Enums;
using System;
using System.Threading.Tasks;
using Volo.Abp.Application.Dtos;
using Volo.Abp.Application.Services;

namespace mozhi.smarterp.Business.Purchases.Order
{
    public interface IPurchaseOrderAppService : IApplicationService
    {
        Task<PurchaseOrderDto> GetAsync(Guid id);

        Task<PurchaseOrderDto> CreateAsync(PurchaseOrderCreateDto input);

        Task<PurchaseOrderDto> UpdateAsync(PurchaseOrderUpdateDto input);

        Task<PagedResultDto<PurchaseOrderDto>> GetListAsync(PurchaseOrderResultRequestDto filter);

        Task DeleteAsync(Guid id);

        Task UpdateStatusAsync(Guid id , DocumentStatusType status);

        Task<Guid> PushReceiptAsync(Guid id);

        Task<Guid> PushPaymentRequisitionAsync(Guid id);
    }
}
